﻿//#region  文件信息

//// ---------------------------------------------------------------------------------------
//// <copyright file="AliPayReturn.cs" company="">
//// 作者：李帅伦
//// </copyright>
//// <summary>
//// 类型简介：
//// 类型详细：AliPayReturn.cs
//// 创建时间：2014-12-25 13:00
//// 修改时间：2014-12-18 16:31
//// </summary>
//// ---------------------------------------------------------------------------------------
//#endregion

//namespace Payment.Albaba.Web
//{
//    #region

//    using System;
//    using System.Collections.Generic;
//    using System.Collections.Specialized;
//    using System.Web;

//    using Payment.Albaba.Jishidaozhang;

//    #endregion

//    /// <summary>
//    /// The ali pay return.
//    /// </summary>
//    public abstract class AliPayReturn
//    {
//        #region Public Properties

//        /// <summary>
//        ///     NotifyId
//        /// </summary>
//        public string NotifyId
//        {
//            get
//            {
//                return this.QueryString["notify_id"];
//            }
//        }

//        /// <summary>
//        ///     商户订单号
//        /// </summary>
//        public string OutTradeNo
//        {
//            get
//            {
//                return this.QueryString["out_trade_no"];
//            }
//        }

//        /// <summary>
//        /// Gets the query string.
//        /// </summary>
//        public virtual NameValueCollection QueryString
//        {
//            get
//            {
//                return HttpContext.Current.Request.QueryString;
//            }
//        }

//        /// <summary>
//        ///     Sign
//        /// </summary>
//        public string Sign
//        {
//            get
//            {
//                return this.QueryString["sign"];
//            }
//        }

//        /// <summary>
//        ///     支付宝交易号
//        /// </summary>
//        public string TradeNo
//        {
//            get
//            {
//                return this.QueryString["trade_no"];
//            }
//        }

//        /// <summary>
//        ///     交易状态
//        /// </summary>
//        public string TradeStatus
//        {
//            get
//            {
//                return this.QueryString["trade_status"];
//            }
//        }

//        #endregion

//        #region Public Methods and Operators

//        /// <summary>
//        ///     获取支付宝GET过来通知消息，并以“参数名=参数值”的形式组成数组
//        /// </summary>
//        /// <returns>request回来的信息组成的数组</returns>
//        public Dictionary<string, string> GetRequestGet()
//        {
//            int i = 0;
//            Dictionary<string, string> sArray = new Dictionary<string, string>();
//            NameValueCollection coll;

//            // Load Form variables into NameValueCollection variable.
//            coll = this.QueryString;

//            // Get names of all forms into a string array.
//            string[] requestItem = coll.AllKeys;

//            for (i = 0; i < requestItem.Length; i++)
//            {
//                sArray.Add(requestItem[i], coll[requestItem[i]]);
//            }

//            return sArray;
//        }

//        /// <summary>
//        /// 获取通知url 处理
//        /// </summary>
//        /// <returns>
//        /// The <see cref="string"/>.
//        /// </returns>
//        public string ReturnUrlJishidaozhang()
//        {
//            var grg = this.GetRequestGet();
//            if (grg.Count > 0)
//            {
//                // 判断是否有带返回参数
//                Notify aliNotify = new Notify();
//                bool verifyResult = aliNotify.Verify(grg, this.NotifyId, this.Sign);

//                if (verifyResult)
//                {
//                    // 验证成功
//                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                    // 请在这里加上商户的业务逻辑程序代码

//                    // ——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
//                    // 获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表
//                    if (this.TradeStatus == "TRADE_FINISHED" || this.TradeStatus == "TRADE_SUCCESS")
//                    {
//                        // 判断该笔订单是否在商户网站中已经做过处理
//                        // 如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
//                        // 如果有做过处理，不执行商户的业务程序
//                    }
//                    else
//                    {
//                        return "验证失败:" + this.TradeStatus;
//                    }

//                    // 打印页面
//                    return "验证成功";

//                    // ——请根据您的业务逻辑来编写程序（以上代码仅作参考）——

//                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                }

//                return "验证失败";
//            }

//            return "无返回参数";
//        }

//        #endregion
//    }
//}